/**
 * 方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)
 * 一个类中可以包含多个同名的方法，只要保证传入方法的形参类型或数量不同即可，此时返回值类型可以相同也可以不同，但仅返回值类型不同是不能重载方法的，会提示冲突
 * 形参是定义方法需要的参数，实参就是调用方法时传入的实际参数
 */

public class Overload {
    int sum(int a,int b){
        System.out.println("int " + (a+b));
        return a+b;
    }

    int sum(int a){
        System.out.println("int "+ a);
        return a;
    }

    double sum(double a,double b){
        System.out.println("double " + (a+b));
        return a+b;
    }

    float sum(float a, float b){
        System.out.println("float " + (a+b));
        return a+b;
    }

    short sum(short a, short b){
        System.out.println("short " + (a+b));
        return (short) (a+b);
    }

    long sum(long a, long b){
        System.out.println("long " + (a+b));
        return a+b;
    }

//    void sum(int a, int b){  //提示和int sum(int a, int b)冲突 'sum(int, int)' is already defined in 'MethodOverwrite'
//    }
}
